/**
 * created by sy 2019.01.03
 * */
import axios from 'axios'

export default {
  createRandomItemStyle() {
    return {
      color: 'rgb(' + [
        Math.round(Math.random() * 160),
        Math.round(Math.random() * 160),
        Math.round(Math.random() * 160)
      ].join(',') + ')'
    }
  },
  createRandomTextStyle() {
    return {
      normal: {
        color: 'rgb(' + [
          Math.round(Math.random() * 160),
          Math.round(Math.random() * 160),
          Math.round(Math.random() * 160)
        ].join(',') + ')'
      }
    }
  },
  /*去掉undefined*/
  delUndefined(str) {
    return str ? str : ''
  },
  /*时间戳格式化*/
  timestampFormat(date, fmt) {
    let time = {
      'M+': date.getMonth() + 1, // 月份
      'd+': date.getDate(), // 日
      'h+': date.getHours(), // 小时
      'm+': date.getMinutes(), // 分
      's+': date.getSeconds(), // 秒
      'S': date.getMilliseconds() // 毫秒
    }
    if (/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in time) {
      if (new RegExp('(' + k + ')').test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (time[k]) : (('00' + time[k]).substr(('' + time[k]).length)));
      }
    }
    return fmt;
  },
  /*DatePicker时间转化*/
  timeFormat(time) {
    let t = new Date(time);
    let year = t.getFullYear();
    let month = t.getMonth();
    let date = t.getDate();
    let hour = t.getHours();
    let minute = t.getMinutes();
    let second = t.getSeconds();

    let t1 = year +
      '-' +
      ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
      '-' +
      ((date + 1) < 10 ? '0' + date : date) +
      ' ' +
      ((hour + 1) < 10 ? '0' + hour : hour) +
      ':' +
      ((minute + 1) < 10 ? '0' + minute : minute) +
      ':' +
      ((second + 1) < 10 ? '0' + second : second);

    let t2 = year +
      '-' +
      ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
      '-' +
      ((date + 1) < 10 ? '0' + date : date);

    time = {
      hasHMS: t1,
      withoutHMS: t2
    };

    return time;
  },

  /*去掉电话号码“+86-”*/
  phoneFormat(phone) {
    phone = phone.slice(4, 15);
    return phone;
  },
  checkAge(age, startTime) {
    if (!age) {
      return '--'
    }
    age = new Date(age)
    startTime = new Date(startTime)
    let tmp = round((startTime - age) / 1000 / 60 / 60 / 24 / 365, 2)
    return tmp

    function round(number, length) {
      const p1 = Math.pow(10, length + 1)
      const p2 = Math.pow(10, length)
      return (Math.round(number * p1 / 10) / p2).toFixed(length)
    }
  },
  /*
   * 文件导出
   *
   * @param data {Object} 请求参数
   * @param url {string} 请求api
   * @param fileName {string} 文件名
   * @param fileType {string} 文件类型
   * @return Value 返回axios
   * @author mingyuan
   * @time 2021-03-09
   */
  exportFileData(params, url, fileName, fileType) {
    return axios({
      method: 'post',
      url: url,
      responseType: 'blob',
      data: {
        loginId: JSON.parse(sessionStorage.getItem('id')),
        token: JSON.parse(sessionStorage.getItem('token')),
        client: 'manager',
        ...params
      }
    }).then(res => {
      let url = window.URL.createObjectURL(res.data)
      let link = document.createElement('a')
      link.style.display = 'none'
      link.href = url
      link.setAttribute('download', fileName + fileType)
      document.body.appendChild(link)
      link.click()
      window.URL.revokeObjectURL(link.href) // 释放url
      document.body.removeChild(link) // 释放标签
    })
  },
  /*
   * txt文件下载
   *
   * @param fileName {string} 文件名
   * @param url {string} 请求api
   * @author mingyuan
   * @time 2021-03-09
   */
  downloadTxt(fileName, url) {
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.addEventListener("load", (response) => {
      let _a = document.createElement('a');
      _a.style.display = 'none';
      _a.download = fileName; // 文件名称
      _a.href = "data:text/plain;charset=utf-8," + encodeURIComponent(response.target.responseText);
      document.body.appendChild(_a);
      _a.click();
      document.body.removeChild(_a);
    })
    xmlhttp.open('GET', url);
    xmlhttp.send()
  },
  /*
   * 其它文件下载(word、excel、pdf等)
   *
   * @param fileName {string} 文件名
   * @param url {string} 请求api
   * @author mingyuan
   * @time 2021-03-09
   */
  downloadFile(fileName, url) {
    const a = document.createElement('a')
    a.setAttribute('download', fileName)
    a.setAttribute('target', '_blank')
    a.setAttribute('href', url)
    a.click()
  },
  // 采用对象访问属性的方法，判断属性值是否存在，如果不存在就添加
  removeDuplicatedItem(arr, key) {
    var result = [];
    var obj = {};
    for (var i = 0; i < arr.length; i++) {
      if (!obj[arr[i][key]]) {
        result.push(arr[i]);
        obj[arr[i][key]] = true;
      }
    }
    return result;
  },
  // 关键字高亮显示
  highLight(content, keyWord) {
    // 如果标题中包含，关键字就替换一下
    let keyWordArr = keyWord.split(',');
    for (let i = 0; i < keyWordArr.length; i++) {
      if (content.includes(keyWordArr[i])) {
        content = content.replaceAll(keyWordArr[i],
          // 这里是替换成html格式的数据，最好再加一个样式权重，保险一点
          '<font style="color:red!important;">' + (keyWordArr[i]) + '</font>')
      }
    }
    return content;
  },
  // 关键字高亮显示
  highLight1(content, keyWord) {
    // 如果标题中包含，关键字就替换一下
    let keyWordArr = keyWord;
    for (let i = 0; i < keyWordArr.length; i++) {
      if (content.includes(keyWordArr[i])) {
        content = content.replaceAll(keyWordArr[i],
          // 这里是替换成html格式的数据，最好再加一个样式权重，保险一点
          '<font style="color:red!important;">' + (keyWordArr[i]) + '</font>')
      }
    }
    return content;
  },
  delUndefine(str) {
    console.log("str------", str)
    if (str && str != undefined && str != 'undefined') {
      return str
    } else {
      return ''
    }
  }
}
